// Generated from antlr/demo.g4 by ANTLR 4.9.0-SNAPSHOT


import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator";
import { NotNull } from "antlr4ts/Decorators";
import { Override } from "antlr4ts/Decorators";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";

import * as Utils from "antlr4ts/misc/Utils";


export class demoLexer extends Lexer {
	public static readonly T__0 = 1;
	public static readonly T__1 = 2;
	public static readonly T__2 = 3;
	public static readonly T__3 = 4;
	public static readonly T__4 = 5;
	public static readonly T__5 = 6;
	public static readonly T__6 = 7;
	public static readonly INT = 8;
	public static readonly DIGIT = 9;
	public static readonly ID = 10;
	public static readonly NameChar = 11;
	public static readonly STRING_ = 12;
	public static readonly BOOL_ = 13;
	public static readonly LETT = 14;
	public static readonly RIGHT = 15;
	public static readonly WS = 16;

	// tslint:disable:no-trailing-whitespace
	public static readonly channelNames: string[] = [
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
	];

	// tslint:disable:no-trailing-whitespace
	public static readonly modeNames: string[] = [
		"DEFAULT_MODE",
	];

	public static readonly ruleNames: string[] = [
		"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "INT", "DIGIT", 
		"ID", "NameChar", "CHAR", "STRING_", "BOOL_", "LETT", "RIGHT", "WS",
	];

	private static readonly _LITERAL_NAMES: Array<string | undefined> = [
		undefined, "'='", "'('", "','", "')'", "'true'", "'false'", "'null'", 
		undefined, undefined, undefined, undefined, undefined, undefined, "'['", 
		"']'",
	];
	private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
		undefined, undefined, undefined, undefined, undefined, undefined, undefined, 
		undefined, "INT", "DIGIT", "ID", "NameChar", "STRING_", "BOOL_", "LETT", 
		"RIGHT", "WS",
	];
	public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(demoLexer._LITERAL_NAMES, demoLexer._SYMBOLIC_NAMES, []);

	// @Override
	// @NotNull
	public get vocabulary(): Vocabulary {
		return demoLexer.VOCABULARY;
	}
	// tslint:enable:no-trailing-whitespace


	constructor(input: CharStream) {
		super(input);
		this._interp = new LexerATNSimulator(demoLexer._ATN, this);
	}

	// @Override
	public get grammarFileName(): string { return "demo.g4"; }

	// @Override
	public get ruleNames(): string[] { return demoLexer.ruleNames; }

	// @Override
	public get serializedATN(): string { return demoLexer._serializedATN; }

	// @Override
	public get channelNames(): string[] { return demoLexer.channelNames; }

	// @Override
	public get modeNames(): string[] { return demoLexer.modeNames; }

	public static readonly _serializedATN: string =
		"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x12n\b\x01\x04" +
		"\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
		"\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r" +
		"\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12" +
		"\x03\x02\x03\x02\x03\x03\x03\x03\x03\x04\x03\x04\x03\x05\x03\x05\x03\x06" +
		"\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07" +
		"\x03\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03\t\x06\t?\n\t\r\t\x0E\t@\x03" +
		"\n\x03\n\x03\v\x03\v\x07\vG\n\v\f\v\x0E\vJ\v\v\x03\f\x03\f\x03\f\x05\f" +
		"O\n\f\x03\r\x03\r\x03\x0E\x03\x0E\x07\x0EU\n\x0E\f\x0E\x0E\x0EX\v\x0E" +
		"\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F" +
		"\x03\x0F\x03\x0F\x05\x0Fe\n\x0F\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12" +
		"\x03\x12\x03\x12\x03\x12\x02\x02\x02\x13\x03\x02\x03\x05\x02\x04\x07\x02" +
		"\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02" +
		"\f\x17\x02\r\x19\x02\x02\x1B\x02\x0E\x1D\x02\x0F\x1F\x02\x10!\x02\x11" +
		"#\x02\x12\x03\x02\x06\x03\x022;\x04\x02C\\c|\x03\x02$$\x05\x02\v\f\x0F" +
		"\x0F\"\"\x02r\x02\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02\x02\x02\x07" +
		"\x03\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03\x02\x02\x02\x02\r\x03" +
		"\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03" +
		"\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x1B\x03" +
		"\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02!\x03" +
		"\x02\x02\x02\x02#\x03\x02\x02\x02\x03%\x03\x02\x02\x02\x05\'\x03\x02\x02" +
		"\x02\x07)\x03\x02\x02\x02\t+\x03\x02\x02\x02\v-\x03\x02\x02\x02\r2\x03" +
		"\x02\x02\x02\x0F8\x03\x02\x02\x02\x11>\x03\x02\x02\x02\x13B\x03\x02\x02" +
		"\x02\x15D\x03\x02\x02\x02\x17N\x03\x02\x02\x02\x19P\x03\x02\x02\x02\x1B" +
		"R\x03\x02\x02\x02\x1Dd\x03\x02\x02\x02\x1Ff\x03\x02\x02\x02!h\x03\x02" +
		"\x02\x02#j\x03\x02\x02\x02%&\x07?\x02\x02&\x04\x03\x02\x02\x02\'(\x07" +
		"*\x02\x02(\x06\x03\x02\x02\x02)*\x07.\x02\x02*\b\x03\x02\x02\x02+,\x07" +
		"+\x02\x02,\n\x03\x02\x02\x02-.\x07v\x02\x02./\x07t\x02\x02/0\x07w\x02" +
		"\x0201\x07g\x02\x021\f\x03\x02\x02\x0223\x07h\x02\x0234\x07c\x02\x024" +
		"5\x07n\x02\x0256\x07u\x02\x0267\x07g\x02\x027\x0E\x03\x02\x02\x0289\x07" +
		"p\x02\x029:\x07w\x02\x02:;\x07n\x02\x02;<\x07n\x02\x02<\x10\x03\x02\x02" +
		"\x02=?\x05\x13\n\x02>=\x03\x02\x02\x02?@\x03\x02\x02\x02@>\x03\x02\x02" +
		"\x02@A\x03\x02\x02\x02A\x12\x03\x02\x02\x02BC\t\x02\x02\x02C\x14\x03\x02" +
		"\x02\x02DH\x05\x19\r\x02EG\x05\x17\f\x02FE\x03\x02\x02\x02GJ\x03\x02\x02" +
		"\x02HF\x03\x02\x02\x02HI\x03\x02\x02\x02I\x16\x03\x02\x02\x02JH\x03\x02" +
		"\x02\x02KO\x05\x19\r\x02LO\x07a\x02\x02MO\x05\x13\n\x02NK\x03\x02\x02" +
		"\x02NL\x03\x02\x02\x02NM\x03\x02\x02\x02O\x18\x03\x02\x02\x02PQ\t\x03" +
		"\x02\x02Q\x1A\x03\x02\x02\x02RV\x07$\x02\x02SU\n\x04\x02\x02TS\x03\x02" +
		"\x02\x02UX\x03\x02\x02\x02VT\x03\x02\x02\x02VW\x03\x02\x02\x02WY\x03\x02" +
		"\x02\x02XV\x03\x02\x02\x02YZ\x07$\x02\x02Z\x1C\x03\x02\x02\x02[\\\x07" +
		"v\x02\x02\\]\x07t\x02\x02]^\x07w\x02\x02^e\x07g\x02\x02_`\x07h\x02\x02" +
		"`a\x07n\x02\x02ab\x07c\x02\x02bc\x07u\x02\x02ce\x07g\x02\x02d[\x03\x02" +
		"\x02\x02d_\x03\x02\x02\x02e\x1E\x03\x02\x02\x02fg\x07]\x02\x02g \x03\x02" +
		"\x02\x02hi\x07_\x02\x02i\"\x03\x02\x02\x02jk\t\x05\x02\x02kl\x03\x02\x02" +
		"\x02lm\b\x12\x02\x02m$\x03\x02\x02\x02\b\x02@HNVd\x03\b\x02\x02";
	public static __ATN: ATN;
	public static get _ATN(): ATN {
		if (!demoLexer.__ATN) {
			demoLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(demoLexer._serializedATN));
		}

		return demoLexer.__ATN;
	}

}

